home *** CD-ROM | disk | FTP | other *** search
- 1 GOTO202:' Kermit Protocol Program 27-NOV-84
- 2 COMSTOP:MDMSTOP:RETURN
- 3 B%=0:CLOSE3:PRINTK$+" break"
- 4 COMON:MDMON:RETURN
- 5 MDMOFF:COMOFF:RETURN
- 6 ONCOMGOSUB110
- 7 ONMDMGOSUB110
- 8 RETURN
- 9 W$="67I1E":K$="kermit":T%=0:S%=0:E%=0:W%=0:A$="^S":G$=CHR$(13):U$=CHR$(34):M%=CINT(192):N%=CINT(64):O%=CINT(63):ONERRORGOTO11
- 10 GOTO79
- 11 E%=-1:IFERR=52ORERR=55ORERR=53THENRESUMENEXT
- 12 PRINT"Error #:";ERR;" in line:";ERL
- 13 LINEINPUT"Resume? (Y/N): ";C$
- 14 IFC$="Y"ORC$="y"THENRESUMEELSEGOSUB156:STOP
- 15 GOSUB2:PRINT:LINEINPUT"Download to: ";Z$:IFASC(Z$)=3THEN4
- 17 OPENZ$FOROUTPUTAS3:IFE%THENE%=0:CLOSE3:RETURN
- 18 PRINT"Download Kermit(K) or Simple(S): ";:T$="":INPUT T$:CALLP,0,VARPTR(T$):IFT$="K"GOTO21ELSEIFT$<>"S"GOTO18
- 19 KEY1,CHR$(153)+CHR$(153)+CHR$(153):KEY2,"INTO":KEY3,"FILE":KEY4,": ":KEY5,LEFT$(Z$,5):KEY6,MID$(Z$,5,4):KEY7,"":KEY8,"STOP":ONKEYGOSUB,,,,,,,20:W%=-1:GOTO4
- 20 CLOSE3:W%=0:GOSUB94:RETURN
- 21 PRINT"Trigger for host Kermit":PRINT"(or null for "+I$+"): ";:LINEINPUTT$:IFT$=""THENT$=h2$+".do"
- 23 IFB%GOTO3
- 24 Z%=1:P9=0:J$=T$+G$:Y0=30:GOTO35
- 25 GOSUB2:PRINT:LINEINPUT"Upload file: ";Z$
- 26 IFASC(Z$)=3THEN GOTO4ELSEOPENZ$FORINPUTAS3:IFE%THENE%=0:PRINT"Can't open.":GOTO4
- 27 GOSUB28:GOTO29
- 28 PRINT"Width for wordbreak":PRINT"or null for unbroken lines";:L%=0:INPUTL%:RETURN
- 29 PRINT"Upload Simple(S) or Kermit(K): ";:T$="":INPUTT$:CALLP,0,VARPTR(T$):IFT$="K"GOTO31ELSEIFASC(T$)=3THEN4ELSEIFT$<>"S"GOTO29
- 30 KEY1,CHR$(152)+CHR$(152)+CHR$(152):KEY2,"FROM":KEY3,"FILE":KEY4," :":KEY5,LEFT$(Z$,4):KEY6,MID$(Z$,5):KEY7,"":KEY8,"STOP":ONKEYGOSUB,,,,,,,109:U%=3:V%=2:GOSUB4:E1$=G$:GOSUB69:CLOSE3:GOSUB94:RETURN
- 31 PRINT"Host Kermit trigger":Print"(or null if "+I$+"): ";:LINEINPUTH$:IFH$=""THENH$=H1$
- 33 IFB%GOTO3
- 34 PRINT#2,H$+G$;:GOTO135
- 35 IFB%GOTO3
- 36 IFZ%=6THEN:PRINT#2,J$:CLOSE3:GOTO155
- 37 GOSUB120:IFB%GOTO3
- 38 IFY%THENPRINT"<time>";:GOTO36
- 39 IFP8<>P9THENPRINT"<seq>";:GOTO36
- 40 T$=LEFT$(L$,L):GOSUB45:IFC$=RIGHT$(L$,1)THENR$="Y"ELSER$="N":E$="":GOTO46
- 41 Z%=INSTR("SFDZB",MID$(L$,3,1))+1
- 42 E$="":ONZ%GOSUB44,48,50,51,57,44
- 43 GOTO46
- 44 RETURN
- 45 C9=0:FORI=1TOLEN(T$):C9=C9+ASC(MID$(T$,I,1)):NEXTI:C8=CINT(C9+((CINT(C9)ANDM%)\N%))ANDO%:C$=CHR$(C8+32):RETURN
- 46 T$=CHR$(35+LEN(E$))+CHR$(32+P8)+R$+E$:GOSUB45:J$=CHR$(1)+T$+C$+G$:PRINTR$;:IFR$="Y"THENP9=(P9+1)MOD64
- 47 GOTO35
- 48 E$=MID$("~~~~~~Xh\RA",INSTR("mM123456789",LEFT$(W$,1)),1)
- 49 Y0=ASC(MID$(L$,5,1))-32:Q$=MID$(L$,9,1):E$=E$+"% @-#":RETURN
- 50 RETURN
- 51 I=3
- 52 I=I+1
- 53 IFI>LTHENRETURN
- 54 C$=MID$(L$,I,1):IFC$<>Q$GOTO56
- 55 I=I+1:C$=MID$(L$,I,1):IFC$<>Q$THENC$=CHR$(ASC(C$)-64)
- 56 PRINT#3,C$;:GOTO52
- 57 CLOSE3:RETURN
- 58 ONMDMGOSUB62
- 59 ONCOMGOSUB62
- 60 GOSUB4:FORJ3=1TO20:NEXTJ3
- 61 GOSUB5:GOSUB6:RETURN
- 62 GOSUB2:E$=INPUT$(1,1):GOTO4
- 63 GOSUB2:PRINT:PRINT"Memory: ";FRE(0):FILES:GOTO4
- 64 GOSUB2:LINEINPUT"copy from: ";M$:IFM$=""GOTO4
- 65 OPENM$FORINPUTAS4:IFE%THENE%=0:PRINT"Cannot open file.":GOTO64
- 66 GOSUB28:LINEINPUT"Copy to (LCD:): ";N$:IFN$=""THENN$="LCD:"
- 67 OPENN$FOROUTPUTAS5:IFE%THENE%=0:PRINT"Cannot open file.":GOTO66
- 68 U%=4:V%=5:E1$=G$+CHR$(10):GOSUB69:CLOSEU%:CLOSEV%:PRINT:PRINT"Copy Over":B%=0:GOTO4
- 69 IFL%<>0THENGOSUB207:GOTO71
- 70 IFEOF(U%)ORB%THENRETURNELSEC$=INPUT$(1,U%):PRINT#V%,C$;:GOTO70
- 71 IFF%=1ORB%THENRETURNELSEGOSUB210:PRINT#V%,O$+E1$;:GOTO71
- 72 GOSUB2:LINEINPUT"Kill:";M$:IFM$=""GOTO4
- 73 IFINSTR(M$,".")=0THENM$=M$+".DO"ELSEGOSUB156
- 74 KILLM$
- 75 IFE%THENE%=0:PRINT"Can't kill:";M$
- 76 GOSUB99:GOTO63
- 77 GOSUB2:D8=-1:GOTO4
- 78 KEY6,"DEL"+G$:D$=CHR$(127):RETURN
- 79 KEY5,"Unix"+G$:GOSUB78:KEY7,"Dial"+G$:KEY4,"Term"+G$:KEY8,"Menu"+G$:KEY3,"Stat ":KEY1,"Run"+G$:KEY2,"Basic"+G$
- 80 CLS:PRINT"Stat: ",W$:SCREEN0,1
- 81 LINEINPUT"Press Function Key: ";C$:IFC$=""GOTO81
- 82 CALL P,0,VARPTR(C$)
- 83 IFC$="TERM"THENI$="TOPS-20":H2$=K$+" send ":H2$=K$+" receive ":GOTO95
- 84 IFC$="UNIX"THENI$="UNIX":H2$=K$+" s ":H1$=K$+" r ":GOTO95
- 85 IFC$="MENU"THENGOSUB156:DATE$=LEFT$(DATE$,6)+"84":MENU
- 86 IFC$="BS"THENGOSUB78:GOTO80
- 87 IFC$="DEL"THENKEY6,"BS"+G$:D$=CHR$(8):GOTO80
- 88 IFC$="DIAL"THENGOSUB158:GOTO79
- 89 IFLEFT$(C$,4)<>"STAT"GOTO92
- 90 IFLEN(C$)>5ANDLEN(C$)<11THENMID$(W$,1,LEN(C$)-5)=MID$(C$,6)
- 91 GOTO80
- 92 IFLEFT$(C$,5)="BASIC"THENGOSUB156:U$=CHR$(34):KEY6,"CSAVE "+U$+K$+U$+G$:KEY7,"SAVE"+U$+K$+".DO"+G$:STOP
- 93 GOTO81
- 94 KEY1,"Files":KEY2,"K."+CHR$(153):KEY3,"K."+CHR$(152):KEY4,"Kill":KEY5,"Copy":KEY6,A$:KEY7,"":KEY8,"Brk":ONKEYGOSUB63,15,25,72,64,115,,109:RETURN
- 95 GOSUB94
- 96 IFT%ANDNOTS%GOTO101
- 97 IFT%ANDS%THENCLOSE1:CLOSE2
- 98 GOSUB99:GOTO101
- 99 IFLEFT$(W$,1)="M"THENY$="MDM:"+RIGHT$(W$,4):ELSEY$="COM:"+W$
- 100 OPENY$FORINPUTAS1:OPENY$FOROUTPUTAS2:T%=1:S%=0:RETURN
- 101 REM
- 102 GOSUB6
- 103 GOSUB4:KEYON
- 104 B%=0:CALL16969,0,0
- 105 IFB%THEN114ELSEC$=INKEY$:IFC$=""GOTO105
- 107 IFASC(C$)=8THENC$=D$
- 108 PRINT#2,C$;:GOTO105
- 109 B%=-1:RETURN
- 110 GOSUB2:B$=INPUT$(1,1):B4=ASC(B$)
- 111 IFW%<>0THENPRINT#3,B$;
- 112 IFB4=8THENPRINTB$;" ";
- 113 PRINTB$;:GOTO4
- 114 GOSUB5:KEYOFF:GOSUB156:GOTO79
- 115 GOSUB2:IFA$="^Q"GOTO117
- 116 GOSUB5:PRINT#2,CHR$(19);:A$="^Q":GOTO118
- 117 PRINT#2,CHR$(17);:A$="^S"
- 118 KEY6,A$:GOTO4
- 120 ONMDMGOSUB129
- 121 ONCOMGOSUB129
- 122 GOSUB4
- 123 GOSUB157:Y4=Y3+Y0
- 124 C%=1:L$=""
- 125 PRINT#2,J$;
- 126 GOSUB157:Y%=Y3>Y4:IFY%=0ANDC%<4ANDB%=0GOTO126
- 127 IFC%=4THENGOSUB58:P8=ASC(MID$(L$,2,1))-32
- 128 RETURN
- 129 C$=INPUT$(1,1):ONC%GOTO130,132,133
- 130 IFASC(C$)=1THENC%=2
- 131 RETURN
- 132 L=ASC(C$)-32:C%=3:L$=C$:RETURN
- 133 L$=L$+C$:IFLEN(L$)=L+1THENC%=4
- 134 RETURN
- 135 Y0=30:S9=0:Q8=0:M9=70:Q$="#":T$="p( @-#":V$="S":GOSUB147:T$=Z$+".do":V$="F":GOSUB147:U%=3:GOSUB207
- 136 T$=""
- 137 IFLEN(T$)>M9GOTO144
- 138 IFL%=0GOTO140ELSEIFF%>1THENQ8=1:GOTO144
- 139 GOSUB208:GOTO141
- 140 IFEOF(3)THENQ8=1:GOTO144ELSEC$=INPUT$(1,3)
- 141 IFASC(C$)<32THENC$=Q$+CHR$(ASC(C$)+64)
- 142 IFC$=Q$THENC$=Q$+C$
- 143 T$=T$+C$:GOTO137
- 144 V$="D":GOSUB147
- 145 IFQ8=0GOTO136
- 146 V$="Z":T$="":GOSUB147:V$="B":T$="":GOSUB147:CLOSE3:GOTO155
- 147 T$=CHR$(LEN(T$)+35)+CHR$(S9+32)+V$+T$:GOSUB45:J$=CHR$(1)+T$+C$+G$
- 148 IFV$="B"THENPRINT#2,J$;:RETURN
- 149 GOSUB120:IFY%THENPRINT"<time>";:GOTO148
- 150 IFB%GOTO3
- 151 T$=LEFT$(L$,L):GOSUB45:IFRIGHT$(L$,1)<>C$THENPRINT"<cksum>";:GOTO148
- 152 S8=ASC(MID$(L$,2,1))-32:IFS8=(S9+1)MOD64THEN:PRINT"Y";:GOTO154ELSEIFS8<>S9THENPRINT"<seq>";:GOTO148
- 153 PRINTMID$(L$,3,1);:IFMID$(L$,3,1)<>"Y"GOTO148
- 154 S6=0:S9=(S9+1)MOD64:RETURN
- 155 SOUND512,40:PRINT:PRINTK$+" Transmission completed.":SOUND1024,40:GOSUB58:B$="":C$="":GOTO4
- 156 CALL23164,0,23366:CALL27795:RETURN
- 157 X$=TIME$:Y3=VAL(LEFT$(X$,2))*3600+VAL(MID$(X$,4,2))*60+VAL(RIGHT$(X$,2)):RETURN
- 158 DA$="503":OPEN"ADRS.DO" FORINPUTAS3:IFEOF(3)GOTO164
- 159 LINEINPUT#3,X$:I%=INSTR(1,X$,"="):IFI%=0GOTO159
- 160 Y$=LEFT$(X$,2)
- 161 IFY$="DA"THENDA$=RIGHT$(X$,LEN(X$)-3):GOTO159
- 162 IFY$="PR"THENP$=RIGHT$(X$,LEN(X$)-3)
- 163 AC$=DA$:CLOSE3
- 164 GOSUB201
- 165 KEY1,"Find ":KEY2,"Call ":KEY3,"Pref ":KEY4,"Area ":KEY5,"Busy"+CHR$(13):KEY6,"":KEY7,"Exit"+CHR$(13):KEY8,"Menu"+CHR$(13):SCREEN0,1:LINEINPUT"Dial:";X$:IFX$=""GOTO165
- 166 GOSUB200:PH$="":IFLEN(X$)<6GOTO168
- 167 PH$=RIGHT$(X$,LEN(X$)-5)
- 168 X$=LEFT$(X$,4):IFX$="CALL"THENAA$=AC$:GOTO186
- 169 IFX$<>"BUSY"GOTO172
- 170 IFPH$=""THENRP%=1000ELSERP%=VAL(PH$)*180
- 171 GOTO164
- 172 IFX$="PREF"THENP$=PH$:GOTO164
- 173 IFX$="AREA"THENAC$=PH$:GOTO164
- 174 IFX$="MENU"THENMENU
- 175 IFX$="EXIT"THENCLOSE3:RETURN
- 176 IFX$<>"FIND"THENPRINT"?":GOTO164
- 177 CLOSE3:AA$=DA$
- 178 OPEN"adrs.do"FORINPUTAS3
- 179 IFEOF(3)GOTO164
- 180 LINEINPUT#3,X$:Y$=X$:CALLP,O,VARPTR(X$):I%=INSTR(X$,PH$):IFI%=0GOTO179
- 181 PRINTY$:KEY2,"Call"+CHR$(13):KEY3,"More"+CHR$(13):KEY4,"Quit"+CHR$(13):KEY1,"":KEY5,"":KEY7,"":KEY8,"":SCREEN0,1:A$=X$:LINE INPUT X$:A3=(CSRLIN-1)*40:PRINT@A3,SPACE$(39);:PRINT@A3,;:CALL P,0,VARPTR(X$):Y$=A$:A$=X$:X$=Y$:IFA$="CALL"GOTO184
- 182 IFA$="QUIT"GOTO165
- 183 IFA$="MORE"GOTO179ELSE181
- 184 I%=INSTR(1,X$,":"):IFI%=0GOTO164
- 185 PH$=RIGHT$(X$,LEN(X$)-I%)
- 186 IFPH$=""THENPH$=LN$:GOTO194
- 187 I%=INSTR(1,PH$,":"):IFI%=0THENPH$=PH$+":":GOTO189
- 188 PH$=LEFT$(PH$,I%)
- 189 IFMID$(PH$,2,1)="0"ORMID$(PH$,2,1)="1"GOTO192
- 190 IFAC$=AA$GOTO193
- 191 PH$=AA$+PH$:GOTO193
- 192 IFLEFT$(PH$,3)=AC$THENPH$=RIGHT$(PH$,LEN(PH$)-3)
- 193 PH$=P$+PH$:LN$=PH$
- 194 M=VARPTR(PH$)
- 195 AD=PEEK(M+1)+PEEK(M+2)*256:PRINT"Calling... ";
- 196 CALL 21293,0,AD:IF RP%=0GOTO199
- 197 FORI%=1TORP%:IFINKEY$=" "GOTO199
- 198 NEXTI%:GOTO196
- 199 PRINT"":RP%=0:GOTO165
- 200 CALLP,0,VARPTR(X$):RETURN
- 201 SCREEN0,0:CLS:PRINT "Home AC:";DA$;" AC in:";AC$;" Prefix:";P$:RETURN
- 202 DATA78,35,126,35,102,111,126,254,97,218,-20,0,254,123,210,-20,0,214,32,119,35,13,200,195,-6,0
- 203 C%=26:P=MAXRAM-C%:CLEAR1000,P-1:MAXFILES=5:C%=26:P=MAXRAM-C%:Q=P:FORI%=1TOC%:READX%:IFX%>=0THENPOKEQ,X%:Q=Q+1:GOTO205
- 204 R=P-X%:POKEQ,(R/256-INT(R/256))*256:POKEQ+1,INT(R/256):Q=Q+2:READX%:I%=I%+1
- 205 NEXTI%:GOTO9
- 206 GOTO9
- 207 S$="":O$="":F%=0:RETURN
- 208 IFLEN(O$)=0THENIFF%>1THENC$="":RETURNELSEGOSUB210:O$=O$+G$+CHR$(10)
- 209 C$=LEFT$(O$,1):O$=MID$(O$,2):RETURN
- 210 IFF%>0THENF%=2:RETURNELSEO$=S$
- 211 IFLEN(O$)>L%GOTO214
- 212 GOSUB218:IFQ%THENS$="":RETURN
- 213 O$=O$+C$:GOTO211
- 214 FORI=L%TO1STEP-1:IFMID$(O$,I,1)=" "THENJ=I-1:GOTO215ELSENEXTI:I=L%:J=I
- 215 S$=MID$(O$,I+1):O$=LEFT$(O$,J)
- 216 IFLEN(O$)>0THENIFLEFT$(O$,1)=" "THENO$=MID$(O$,2):GOTO216
- 217 RETURN
- 218 IFEOF(U%)THENF%=1:Q%=-1ELSEC$=INPUT$(1,U%)
- 219 C1%=ASC(C$):IFF%<1AND(((C1%<32)AND(C1%<>13))OR(C1%>126))GOTO218
- 220 Q%=C1%=13ORF%>0:RETURN
-